Running Module 1 and Module 2 on the cluster
Not for the faint of hart
Bash scripts
Running an R script on the cluster requires two parts: an R script with the code to be run and a PBS script to control how that R script is run on the cluster.
There are two different clusters at Wustl.edu, an old and a new cluster. This script runs the R code on the new cluster.
#!/bin/bash
#PBS -N Four_model_run
#PBS -V
#PBS -l walltime=23:59:00
#PBS -l pmem=1200mb
#PBS -l nodes=1:ppn=1:haswell
#PBS -t 1-1000
echo $PBS_ARRAYID
cd /home/cbotero/mydirectory/Four_model_compare
module load R
export R_LIBS=$HOME/rlibs
#R CMD INSTALL --library=/home/ttuff/rlibs FARM_1.0.tar.gz
Rscript --vanilla ./FARM_four_model_compare.R ${PBS_ARRAYID}
We were regularly causing problems running to many jobs on the new cluster and we were asked to move to the old cluster. This cluster has slower individual processors, but we can run more jobs at one time, so productivity has stayed about the same.
#!/bin/bash
#PBS -N FARM_third_run_old
#PBS -V
#PBS -l walltime=160:00:00
#PBS -l pmem=1200mb
#PBS -q old
#PBS -l nodes=1:ppn=1:nehalem
#PBS -t 1-500
echo $PBS_ARRAYID
cd /home/ttuff/mydirectory/Four_model_compare
module load R
export R_LIBS=$HOME/rlibs
#R CMD INSTALL --library=/home/ttuff/rlibs FARM_1.0.tar.gz
Rscript --vanilla ./FARM_four_model_compare.R ${PBS_ARRAYID}
Passing arguements to R-script
The final argument in the #PBS script above (#PBS -t 1-500) controls the serial running schema for running many simultanious instances of the R script at a time. This argument is passes to R as an integer value using the following arguements inside R.
args <- commandArgs(trailingOnly = FALSE) #7 elements are passed from the PBS
NAI <- as.numeric(args[7]) # the seventh of those elements is the array integer.
Here is a working example of how to set up the R script.
#install.packages("rfoaas")
library(rfoaas)
##If the PBS script started this code running and passed the number 13
##to this particular run of a larger serial set.
#args <- commandArgs(trailingOnly = FALSE)
NAI <- 13 #as.numeric(args[7])
sayHello <- function(loop_number){
print(paste0("I can count to ", loop_number, "! ", cool(from="Ty")))
}
sayHello(NAI)
Accessing and working with the cluster
You logon to the cluster using linux/unix code from the command line terminal on you computer. Open the terminal and put in you login info.
ssh -Y ttuff@login.chpc.wustl.edu
password:_______
Upon first login, you will be in a folder called ‘HOME’ with a series of system files in it. You will want to use an FTP client to view and organize these files. I prefer Filezilla, but there are several other good clients available for free. Download filezilla, make sure it’s in your applications folder, and open it. You should see a window that looks like a newer version of this. The left panels are the files on the computer you’re working from and the right two panels will show the files on the server once you log in through Filezilla also.
Once logged in, you need to change the directory
cd /home/ttuff/mydirectory/Four_model_compare
LS0tCnRpdGxlOiAnRC1wbGFjZSBGQVJNIGRvY3VtZW50YXRpb246IFJ1bm5pbmcgc2ltdWxhdGlvbnMgb24gdGhlIGNsdXN0ZXInCmF1dGhvcjogIlR5IFR1ZmYsIEJydW5vIFZpbGVsYSwgYW5kIENhcmxvcyBCb3Rlcm8iCmRhdGU6ICdwcm9qZWN0IGJlZ2FuOiAxNSBNYXkgMjAxNiwgZG9jdW1lbnQgdXBkYXRlZDogYHIgc3RyZnRpbWUoU3lzLnRpbWUoKSwgZm9ybWF0ICA9CiAgIiVkICVCICVZIilgJwpvdXRwdXQ6CiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIGh0bWxfZG9jdW1lbnQ6IGRlZmF1bHQKICB3b3JkX2RvY3VtZW50OiBkZWZhdWx0CmJpYmxpb2dyYXBoeTogRkFSTSBwYWNrYWdlLmJpYgotLS0KCiMgUnVubmluZyBNb2R1bGUgMSBhbmQgTW9kdWxlIDIgb24gdGhlIGNsdXN0ZXIKCiMjIE5vdCBmb3IgdGhlIGZhaW50IG9mIGhhcnQKCgojIyBCYXNoIHNjcmlwdHMKUnVubmluZyBhbiBSIHNjcmlwdCBvbiB0aGUgY2x1c3RlciByZXF1aXJlcyB0d28gcGFydHM6IGFuIFIgc2NyaXB0IHdpdGggdGhlIGNvZGUKdG8gYmUgcnVuIGFuZCBhIFBCUyBzY3JpcHQgdG8gY29udHJvbCBob3cgdGhhdCBSIHNjcmlwdCBpcyBydW4gb24gdGhlIGNsdXN0ZXIuCgoKVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgY2x1c3RlcnMgYXQgV3VzdGwuZWR1LCBhbiBvbGQgYW5kIGEgbmV3IGNsdXN0ZXIuIFRoaXMKc2NyaXB0IHJ1bnMgdGhlIFIgY29kZSBvbiB0aGUgbmV3IGNsdXN0ZXIuIAoKCmBgYHtiYXNoIGV2YWw9RkFMU0V9CiMhL2Jpbi9iYXNoCiNQQlMgLU4gRm91cl9tb2RlbF9ydW4gCiNQQlMgLVYgCQkJCQkKI1BCUyAtbCB3YWxsdGltZT0yMzo1OTowMAkJCQkKI1BCUyAtbCBwbWVtPTEyMDBtYiAKI1BCUyAtbCBub2Rlcz0xOnBwbj0xOmhhc3dlbGwgCiNQQlMgLXQgMS0xMDAwCgoKZWNobyAkUEJTX0FSUkFZSUQKCmNkIC9ob21lL2Nib3Rlcm8vbXlkaXJlY3RvcnkvRm91cl9tb2RlbF9jb21wYXJlCm1vZHVsZSBsb2FkIFIKCmV4cG9ydCBSX0xJQlM9JEhPTUUvcmxpYnMKI1IgQ01EIElOU1RBTEwgLS1saWJyYXJ5PS9ob21lL3R0dWZmL3JsaWJzICBGQVJNXzEuMC50YXIuZ3oKClJzY3JpcHQgLS12YW5pbGxhIC4vRkFSTV9mb3VyX21vZGVsX2NvbXBhcmUuUiAke1BCU19BUlJBWUlEfQpgYGAKCgpXZSB3ZXJlIHJlZ3VsYXJseSBjYXVzaW5nIHByb2JsZW1zIHJ1bm5pbmcgdG8gbWFueSBqb2JzIG9uIHRoZSBuZXcgY2x1c3RlciBhbmQgCndlIHdlcmUgYXNrZWQgdG8gbW92ZSB0byB0aGUgb2xkIGNsdXN0ZXIuIFRoaXMgY2x1c3RlciBoYXMgc2xvd2VyIGluZGl2aWR1YWwgCnByb2Nlc3NvcnMsIGJ1dCB3ZSBjYW4gcnVuIG1vcmUgam9icyBhdCBvbmUgdGltZSwgc28gcHJvZHVjdGl2aXR5IGhhcyBzdGF5ZWQgCmFib3V0IHRoZSBzYW1lLiAKCmBgYHtiYXNoIGV2YWw9RkFMU0V9CiMhL2Jpbi9iYXNoCiNQQlMgLU4gRkFSTV90aGlyZF9ydW5fb2xkIAojUEJTIC1WIAkJCQkJCiNQQlMgLWwgd2FsbHRpbWU9MTYwOjAwOjAwCQkJCQojUEJTIC1sIHBtZW09MTIwMG1iIAojUEJTIC1xIG9sZAojUEJTIC1sIG5vZGVzPTE6cHBuPTE6bmVoYWxlbSAKI1BCUyAtdCAxLTUwMAoKCmVjaG8gJFBCU19BUlJBWUlECgpjZCAvaG9tZS90dHVmZi9teWRpcmVjdG9yeS9Gb3VyX21vZGVsX2NvbXBhcmUKbW9kdWxlIGxvYWQgUgoKZXhwb3J0IFJfTElCUz0kSE9NRS9ybGlicwojUiBDTUQgSU5TVEFMTCAtLWxpYnJhcnk9L2hvbWUvdHR1ZmYvcmxpYnMgIEZBUk1fMS4wLnRhci5negoKUnNjcmlwdCAtLXZhbmlsbGEgLi9GQVJNX2ZvdXJfbW9kZWxfY29tcGFyZS5SICR7UEJTX0FSUkFZSUR9IAoKYGBgCgojIyBQYXNzaW5nIGFyZ3VlbWVudHMgdG8gUi1zY3JpcHQKVGhlIGZpbmFsIGFyZ3VtZW50IGluIHRoZSAjUEJTIHNjcmlwdCBhYm92ZSAoI1BCUyAtdCAxLTUwMCkgY29udHJvbHMgdGhlIHNlcmlhbCAKcnVubmluZyBzY2hlbWEgZm9yIHJ1bm5pbmcgbWFueSBzaW11bHRhbmlvdXMgaW5zdGFuY2VzIG9mIHRoZSBSIHNjcmlwdCBhdCBhIAp0aW1lLiBUaGlzIGFyZ3VtZW50IGlzIHBhc3NlcyB0byBSIGFzIGFuIGludGVnZXIgdmFsdWUgdXNpbmcgdGhlIGZvbGxvd2luZwphcmd1ZW1lbnRzIGluc2lkZSBSLiAKYGBge3IgZXZhbD1GQUxTRX0KCmFyZ3MgPC0gY29tbWFuZEFyZ3ModHJhaWxpbmdPbmx5ID0gRkFMU0UpICM3IGVsZW1lbnRzIGFyZSBwYXNzZWQgZnJvbSB0aGUgUEJTCgpOQUkgPC0gYXMubnVtZXJpYyhhcmdzWzddKSAjIHRoZSBzZXZlbnRoIG9mIHRob3NlIGVsZW1lbnRzIGlzIHRoZSBhcnJheSBpbnRlZ2VyLgoKYGBgCgoKSGVyZSBpcyBhIHdvcmtpbmcgZXhhbXBsZSBvZiBob3cgdG8gc2V0IHVwIHRoZSBSIHNjcmlwdC4KYGBge3J9CiNpbnN0YWxsLnBhY2thZ2VzKCJyZm9hYXMiKQpsaWJyYXJ5KHJmb2FhcykKCiMjSWYgdGhlIFBCUyBzY3JpcHQgc3RhcnRlZCB0aGlzIGNvZGUgcnVubmluZyBhbmQgcGFzc2VkIHRoZSBudW1iZXIgMTMKIyN0byB0aGlzIHBhcnRpY3VsYXIgcnVuIG9mIGEgbGFyZ2VyIHNlcmlhbCBzZXQuIAoKCiNhcmdzIDwtIGNvbW1hbmRBcmdzKHRyYWlsaW5nT25seSA9IEZBTFNFKSAKCk5BSSA8LSAxMyAjYXMubnVtZXJpYyhhcmdzWzddKQoKCXNheUhlbGxvIDwtIGZ1bmN0aW9uKGxvb3BfbnVtYmVyKXsKICAgCSAgcHJpbnQocGFzdGUwKCJJIGNhbiBjb3VudCB0byAiLCBsb29wX251bWJlciwgIiEgICAiLCBjb29sKGZyb209IlR5IikpKQoJfQoKCXNheUhlbGxvKE5BSSkKCmBgYAoKIyMgQWNjZXNzaW5nIGFuZCB3b3JraW5nIHdpdGggdGhlIGNsdXN0ZXIKWW91IGxvZ29uIHRvIHRoZSBjbHVzdGVyIHVzaW5nIGxpbnV4L3VuaXggY29kZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUgCnRlcm1pbmFsIG9uIHlvdSBjb21wdXRlci4gT3BlbiB0aGUgdGVybWluYWwgYW5kIHB1dCBpbiB5b3UgbG9naW4gaW5mby4KCgpgYGB7YmFzaCBldmFsPUZBTFNFfQpzc2ggLVkgdHR1ZmZAbG9naW4uY2hwYy53dXN0bC5lZHUKcGFzc3dvcmQ6X19fX19fXwpgYGAKClVwb24gZmlyc3QgbG9naW4sIHlvdSB3aWxsIGJlIGluIGEgZm9sZGVyIGNhbGxlZCAnSE9NRScgd2l0aCBhIHNlcmllcyBvZiBzeXN0ZW0gCmZpbGVzIGluIGl0LiBZb3Ugd2lsbCB3YW50IHRvIHVzZSBhbiBGVFAgY2xpZW50IHRvIHZpZXcgYW5kIG9yZ2FuaXplIHRoZXNlIApmaWxlcy4gSSBwcmVmZXIgRmlsZXppbGxhLCBidXQgdGhlcmUgYXJlIHNldmVyYWwgb3RoZXIgZ29vZCBjbGllbnRzIGF2YWlsYWJsZSAKZm9yIGZyZWUuIERvd25sb2FkIGZpbGV6aWxsYSwgbWFrZSBzdXJlIGl0J3MgaW4geW91ciBhcHBsaWNhdGlvbnMgZm9sZGVyLCBhbmQKb3BlbiBpdC4gWW91IHNob3VsZCBzZWUgYSB3aW5kb3cgdGhhdCBsb29rcyBsaWtlIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzLiBUaGUgCmxlZnQgcGFuZWxzIGFyZSB0aGUgZmlsZXMgb24gdGhlIGNvbXB1dGVyIHlvdSdyZSB3b3JraW5nIGZyb20gYW5kIHRoZSByaWdodAp0d28gcGFuZWxzIHdpbGwgc2hvdyB0aGUgZmlsZXMgb24gdGhlIHNlcnZlciBvbmNlIHlvdSBsb2cgaW4gdGhyb3VnaCBGaWxlemlsbGEKYWxzby4gCgohW0EgZnJlc2ggRmlsZXppbGxhIHdpbmRvd10oRmlsZXppbGxhLnBuZykKCiFbU3RhcnQgYSBuZXcgc2VydmVyIGxpbmtdKHNpdGUgbWFuYWdlci5wbmcpCgoKCgohW1N0YXJ0IGEgbmV3IHNpdGUgYW5kIG5hbWUgdGhhdCBuZXcgc2l0ZV0oTmV3IHNpdGUgbmFtZS5wbmcpCgoKIVtTZWxlY3QgYSBzZWN1cmUgc3NoIGZpbGUgdHJhbnNmZXIgcHJvdG9jb2xdKFNGVFAucG5nKQoKCiFbTG9naW4gYXMgbm9ybWFsXShDaG9vc2Ugbm9ybWFsLnBuZykKCgohW0VudGVyIHBhc3N3b3JkXShFbnRlciBwYXNzd29yZC5wbmcpCgoKIVtZb3UgbmVlZCB0byBjcmVhdGUgdHdvIG5ldyBkaXJlY3RvcmllcyAoZm9sZGVycykgZm9yIHVzIHRvIHdvcmsgb3V0IG9mLiBDYWxsIG9uZSAncmxpYnMnIGFuZCB0aGUgb3RoZXIgJ215ZGlyZWN0b3J5J10oQ3JlYXRlIHR3byBmaWxlcyB3aXRoaW4geW91ciBob21lIGZpbGUucG5nKQoKCiFbV2l0aGluIG15ZGlyZWN0b3J5LCBjcmVhdGUgYW5vdGhlciBmb2xkZXIgY2FsbGVkICdGb3VyX21vZGVsX2NvbXBhcmUnXShDcmVhdGUgRm91cl9tb2RlbHNfY29tcGFyZSBmb2xkZXIucG5nKQoKIVtXaXRoaW4gJ0ZvdXJfbW9kZWxfY29tcGFyZScsIGNyZWF0ZSB0d28gZm9sZGVycyBjYWxsZWQgJ01vZHVsZV8xX291dHB1dHMnIGFuZCAnTW9kdWxlXzJfb3V0cHV0cycuIFRoZW4gZHJhZyB0aHJlZSBmaWxlcyBmcm9tIHlvdXIgY29tcHV0ZXIgZmlsZXMgb24gdGhlIGxlZnQgdG8gdGhlIHNlcnZlciBmb2xkZXJzIG9uIHRoZSByaWdodDogb25lIC5SIGZpbGUsIG9uZSAucGJzIGZpbGUsIGFuZCBhIHppcCBmaWxlIHdpdGggdGhlIHBhY2thZ2UgRkFSTSBpbiBpdC4gVGhlc2Ugc2hvdWxkIGJlIG5hbWVkIEZBUk1fZm91cl9tb2RlbF9jb21wYXJlLlIsIEZBUk1fZm91cl9tb2RlbF9jb21wYXJlX29sZF9jbHVzdGVyLnBicywgYW5kIEZBUk1fMS4wLnRhci5neiAuXShDcmVhdGUgbW9kdWxlIGZvbGRlcnMucG5nKQoKCgoKT25jZSBsb2dnZWQgaW4sIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgZGlyZWN0b3J5CmBgYHtiYXNoIGV2YWw9RkFMU0V9CmNkIC9ob21lL3R0dWZmL215ZGlyZWN0b3J5L0ZvdXJfbW9kZWxfY29tcGFyZQpgYGAKCgoKCgoKCgoKCgoKCiFbXShGaWxlcyBmcm9tIG1vZHVsZSAxLnBuZykKCiFbXShGaWxlcyBmcm9tIG1vZHVsZSAyLnBuZykKCgoKCgoKCgoKCgoKCgoKCg==